//
// Created by wze-zero on 2024/10/26.
//
#include <iostream>
#include <algorithm>

using namespace std;


string function(string str) {
    reverse(str.begin(), str.end());
    return str;
}

string add(const string &s, const string &str, int n) {
    string st;
    int flag;
    if (n == 16) {
        flag = 0;
        int num1, num2;
        for (int i = s.size() - 1; i >= 0; --i) {
            num1 = (s.at(i) >= '0' && s.at(i) <= '9') ? s.at(i) - '0' : s.at(i) - 'A' + 10;
            num2 = (str.at(i) >= '0' && str.at(i) <= '9') ? str.at(i) - '0' : str.at(i) - 'A' + 10;
            int temp = (num1 + num2 + flag) % n;
            if (temp < 10) {
                st += to_string(temp);
            } else {
                st += 'A' + temp % 10;
            }
            flag = (num1 + num2 + flag) / n;
        }
        if (flag) {
            if (flag < 10) {
                st += to_string(flag);
            } else {
                st += 'A' + flag % 10;
            }
        }
    } else {
        flag = 0;
        int num1, num2;
        for (int i = s.size() - 1; i >= 0; --i) {
            num1 = s.at(i) - '0';
            num2 = str.at(i) - '0';
            st += to_string((num1 + num2 + flag) % n);
            flag = (num1 + num2 + flag) / n;
        }
        if (flag) {
            st += to_string(flag);
        }
    }
    reverse(st.begin(), st.end());
    return st;
}

int count(const string &str, int n) {
    string s = add(str, function(str), n);
    int count = 0;
    bool flag = false;
    while (count <= 30) {
        if (s == function(s)) {
            flag = true;
        }
        count++;
        if (flag) {
            break;
        } else {
            s = add(s, function(s), n);
        }
    }
    return count <= 30 ? count : -1;
}

int main() {
    int n, num;
    string s;
    cin >> n;
    cin >> s;
    num = count(s, n);
    num > 0 ? cout << "STEP=" << num << endl : cout << "Impossible!" << endl;
    return 0;
}